package com.youlai.boot.modules.product.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.modules.product.model.Product;
import com.youlai.boot.modules.product.model.ProductForm;
import com.youlai.boot.modules.product.model.ProductVO;
import com.youlai.boot.modules.product.model.ProductDetailVO;
import com.youlai.boot.modules.product.model.ProductPageQuery;
import com.youlai.boot.modules.category.model.CategoryVO;
import com.youlai.boot.modules.product.model.ProductShippingVO;
import com.youlai.boot.modules.country.model.vo.CountryVO;
import com.youlai.boot.common.base.BasePageQuery;
import java.util.List;

public interface ProductService extends IService<Product> {
    Page<ProductVO> getProductPage(ProductPageQuery query);

    ProductDetailVO getProductById(Long id);

    ProductShippingVO getProductShipping(Long id);

    Long saveProduct(ProductForm form);

    void updateProduct(ProductForm form);

    boolean deleteProduct(Long id);

    List<CategoryVO> getProductCategories(Long productId);

    void saveProductCategory(Long productId, Long categoryId);

    void deleteProductCategory(Long productId, Long categoryId);

    /** 商品国家操作接口 */
    Page<CountryVO> getProductCountryPage(Long productId, BasePageQuery query);

    CountryVO getProductCountry(Long productId, String countryCode);

    void saveProductCountry(Long productId, String countryCode);

    void deleteProductCountry(Long productId, String countryCode);
}
